package br.com.afi.pattern.interpreter;

import java.util.Map;

import br.com.afi.pattern.interpreter.expression.Expression;

/**
 * Classe responsável por intepretar um expressões
 * 
 * @author André de Fontana Ignacio
 * @version 1.0
 */
public abstract class ExpressionEvaluator implements Evaluator{
	private Expression expression;
	
	/**
	 * Interpreta utilizando as variáveis
	 * 
	 * @param variables Variáveis 
	 * @return Resultado
	 */
	@Override
	public Object evaluate( Map<String,Object> variables ) 
	{
        return expression.interpret(variables);
    }
	
	/**
	 * Atribuí a expressões
	 * 
	 * @param expression Expressão
	 */
	@Override
	public void setExpression( Expression expression )
	{
		this.expression = expression;
	}
}
